package Readers;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import NWPackage.ProbabilityCell;
import NWPackage.RealVoteCell;

public abstract class Inputs {

	protected final String[] candidates = new String[1];
	protected List<String> dynamicCandidates;// = (ArrayList<String>) Arrays.asList(candidates);
	protected int numCandidates = candidates.length;
	
	//protected final String[] agents =new String[1]; //LIHI"S CHANGE
	//protected final int numAgents = agents.length;
	
	
	//{X,B} = X<B
	protected String[][] preferrences = null;
	
	protected final int MonteCarloRandomProcess = 0;
	
	protected final int BORDA_MIN_VALUE = 1;
	protected final int BORDA_MAX_VALUE = numCandidates;
	protected int RANDOM_SEED;
	
	public abstract RealVoteCell[] realVotesMatrix();
	
	
	public abstract String[] getCandidates();
	public abstract List<String> getDynamicCandidates();
	public abstract int getNumCandidates();
	public abstract String[] getAgents();
	public abstract int getNumAgents();
	public abstract int getMonteCarloRandomProcess();
	public abstract int getBordaMaxValue();
	public abstract int getBordaMinValue();
	public abstract ProbabilityCell[] getMatrixProbabilities();
	public abstract String getFileName();
	public abstract int getHuristic();
	
	public int getSeed(){
		return this.RANDOM_SEED;
	}

}
